package com.yuncheng.spcyApi.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yuncheng.spcyApi.entity.SpcyRsHcy;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yuncheng.entity.YcSysUser;
import com.yuncheng.spcyApi.vo.jcy.HcyJbxxVo;
import com.yuncheng.spcyApi.vo.jcy.JcyTxUserVo;
import com.yuncheng.spcyApi.vo.jcy.RsHcyVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @Description: 审评查验-核查员库
 * @Author: csx
 * @Date: 2023-03-03
 * @Version: V1.0
 */
public interface SpcyRsHcyMapper extends BaseMapper<SpcyRsHcy> {

    /** 检查员类别总库-列表查询 */
    List<RsHcyVo> getRsHcyList(@Param("hcy") RsHcyVo rsHcyVo);

    /** 检查员类别总库-分页列表查询 */
    Page<RsHcyVo> pageRsHcyList(Page<RsHcyVo> page,
                                @Param("hcy") RsHcyVo rsHcyVo,
                                @Param("orderItem")String orderItem,
                                @Param("orderType")String orderType);

    /** 检查员基本信息列表 */
    List<HcyJbxxVo> findRsHcyList(@Param("hcy") RsHcyVo rsHcyVo);

    /** 手动选择检查员 */
    Page<HcyJbxxVo> pageRsHcyJbxxList(Page<HcyJbxxVo> page,@Param("hcy") RsHcyVo rsHcyVo);

    /** 手动选择检查员 */
    Page<HcyJbxxVo> pageJcyXpList(Page<HcyJbxxVo> page,@Param("hcy") RsHcyVo rsHcyVo);

    /** 通过检查员ids查询检查员基本信息 */
    List<RsHcyVo> getBatchHcyByIds(@Param("idsList") List<String> idsList);

    /** 查询存在检查员身份的用户-分页查询 */
    Page<YcSysUser> getUserInHcyPageList(Page<YcSysUser> page,
                                         @Param("user") YcSysUser user,
                                         @Param("orderItem")String orderItem,
                                         @Param("orderType")String orderType);

    /**
     * 检查员账号管理 - 分页列表查询
     */
    Page<RsHcyVo> pageJcyAccountList(Page<RsHcyVo> page, @Param("user") RsHcyVo user, @Param("fusertype") String fusertype, @Param("gjz") String gjz);

    /**
     * 检查员查询统计管理 - 分页列表查询
     */
    Page<RsHcyVo> jcyCxtjPageList(Page<RsHcyVo> page, @Param("user") RsHcyVo user, @Param("fusertype") String fusertype);

    /**
     * 检查员查询统计管理 - 列表查询
     */
    List<RsHcyVo> jcyCxtjList(@Param("user") RsHcyVo user, @Param("fusertype") String fusertype);

    /**
     * 查询退休年龄的检查员人员列表
     * @param nowYear 当前年份 (2023)
     * @param maletxnlrq 男退休年龄日期（20230101）
     * @param femaletxnlrq 女退休年龄日期（20230101）
     */
    List<JcyTxUserVo> selectTxJcyUserList(int nowYear, long maletxnlrq, long femaletxnlrq);

    /**
     * 查询检查员用户列表
     * @return
     */
    List<YcSysUser> selectJcyUserList(@Param("user") YcSysUser user);

    /**
     * 查询检查员用户基本信息列表
     * @return
     */
    List<YcSysUser> selectJcyUserJbxxList(@Param("user") YcSysUser user);

    /**
     * 检查员身份基本信息列表
     */
    List<SpcyRsHcy> selectJcyJbxxList(@Param("bean") SpcyRsHcy bean);

    /** 根据检查原id-查询检查员基本信息 */
    RsHcyVo selectJcyJbxxById(@Param("id") String id);
}
